<!DOCTYPE html>
<html lang="en">
  <head>
    <meta charset="UTF-8" />
    <meta name="viewport" content="width=device-width, initial-scale=1.0" />
    <title>Document</title>
  </head>
  <body>
    <h1>打开控制台看输出</h1>
    <script>
      // function 函数声明
      //具名函数
      function fn1() {
        alert("hello fn1  具名函数被调用了");
      }
      // fn1();

      //  匿名函数，ArkTS 不支持匿名函数
      const fn2 = function () {
        alert("hello fn2 匿名函数被调用了");
      };
      // fn2()

      // 箭头函数 定义方式，化简规则和 ArkTS 中一模一样
      const fn3 = () => {
        alert("hello fn3 箭头函数被调用了");
      };
      // fn3();

      // 参数
      // 1. 形参与实参个数可以不统一，未接收到数据的形参值为undefined
      // 2. 顺序：指定参数、默认参数、剩余参数(...)
      const sayHi = (params) => {
        console.log(params);
      };
      // // sayHi("hello ");
      // sayHi([11,22,33])

      // ...params:剩余参数
      const fn4 = (a, b, ...params) => {
        console.log(params);
      };
      fn4(1, 2, 3, 4, 5); //[3,4,5]
      fn4("a", "b", "c", "d", 1); //["c","d",1]

      // ...args:剩余参数
      function printInfo(name, gender = "man", ...args) {
        console.log(name);
        console.log(gender);
        console.log(args);
      }
      printInfo("小红", "woman", 1, 2, 3); // 小红 woman [1, 2, 3]
      printInfo("小红", 1, 2, 3); // 小红 1 [2, 3]
    </script>
  </body>
</html>
